<template>
	<div class="app-container">



		<el-table v-loading="loading" :data="guidanceList" @selection-change="handleSelectionChange">
			<!-- <el-table-column type="selection" width="55" align="center" /> -->
			<el-table-column label="指导参赛ID" align="center" prop="guidanceId" v-if="false" />
			<!-- <el-table-column label="辅导员ID" align="center" prop="teacherId" />
			<el-table-column label="学院" align="center" prop="college" /> -->
			<el-table-column label="作品名称" align="center" prop="name" />
			<el-table-column label="比赛项目" align="center" prop="project" />
			<el-table-column label="获奖等级" align="center" prop="awardLevel" />
			<el-table-column label="发证单位" align="center" prop="proofunit" />
			<el-table-column label="级别" align="center" prop="level">
				<template slot-scope="scope">
					<dict-tag :options="dict.type.rt_researchlevel" :value="scope.row.level" />
				</template>
			</el-table-column>
			<el-table-column label="获奖时间" align="center" prop="awardTime" width="180">
				<template slot-scope="scope">
					<span>{{ parseTime(scope.row.awardTime, '{y}-{m}-{d}') }}</span>
				</template>
			</el-table-column>
			<el-table-column label="参赛者" align="center" prop="participants" />
			<el-table-column label="获奖年度" align="center" prop="year">
				<template slot-scope="scope">
					<dict-tag :options="dict.type.sys_teacher_kpi_filling_year" :value="scope.row.year" />
				</template>
			</el-table-column>

			<el-table-column label="证书" align="center" prop="certificate" width="100">
				<template slot-scope="scope">
					<image-preview :src="scope.row.certificate" :width="50" :height="50" />
				</template>
			</el-table-column>
			<!-- <el-table-column label="审核状态" align="center" prop="checkStatus" >
				<template slot-scope="scope">
					{{currentStatus(scope.row.checkStatus)}}
				</template>
			</el-table-column>
			<el-table-column label="审核人" align="center" prop="checkPerson" /> -->
			<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
				<template slot-scope="scope">
					<el-button size="mini" type="text" icon="el-icon-check" @click="check(scope.row)" v-hasPermi="['teacher:thesis:edit']">同意</el-button>
						<el-button size="mini" type="text" icon="el-icon-close" @click="close(scope.row)" v-hasPermi="['teacher:thesis:edit']">不同意</el-button>
					
				</template>
			</el-table-column> -->
		</el-table>

		<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
			@pagination="getList" />
			
			<!-- 添加驳回理由对话框 -->
			<el-dialog title="驳回理由" :visible.sync="reason" width="500px" append-to-body>
				<el-form ref="form" :model="form" :rules="rules" label-width="80px">
					<el-form-item label="驳回理由" prop="returnReason">
						<el-input v-model="returnReason" placeholder="请输入驳回理由" />
					</el-form-item>
					
				</el-form>
				<div slot="footer" class="dialog-footer">
					<el-button type="primary" @click="returnAchievement">驳回</el-button>
					<el-button @click="cancel">取 消</el-button>
				</div>
			</el-dialog>
	</div>
</template>

<script>
	import {
		listGuidance,
		getGuidance,
		delGuidance,
		addGuidance,
		updateGuidance
	} from "@/api/teacher/guidance";
	import {
		getUserProfile
	} from "@/api/system/user";

	
	export default {
		name: "Guidance",
		dicts: ['sys_teacher_kpi_filling_year', 'rt_researchlevel','rt_filling_college'],
		props: ['message'],
		data() {
			return {
				// 当前辅导员ID
				currentId: null,
				//当前辅导员姓名、学院
				currentName: null,
				currentCollege: null,
				//驳回理由
				reason:null, //对话框
				returnReason:null,
				//当前用户角色
				currentRole:[],
				//成果Id
				achievementId: null,
				// 遮罩层
				loading: true,
				// 选中数组
				ids: [],
				// 非单个禁用
				single: true,
				// 非多个禁用
				multiple: true,
				// 显示搜索条件
				showSearch: true,
				// 总条数
				total: 0,
				// guidance表格数据
				guidanceList: [],
				// 弹出层标题
				title: "",
				// 是否显示弹出层
				open: false,
				// 查询参数
				queryParams: {
					pageNum: 1,
					pageSize: 10,
					teacherId: this.message,
					name: null,
					project: null,
					awardLevel: null,
					proofunit: null,
					level: null,
					awardTime: null,
					participants: null,
					year: null,
					certificate: null,
					checkStatus: null,
					checkPerson: null,
					college: null,
					submitYear:new Date().getFullYear()
				},
				// 表单参数
				form: {},
				// 表单校验
				rules: {}
			};
		},
		created() {
			this.getList();
		},
		methods: {
			/** 查询guidance列表 */
			getList() {
				this.loading = true;
				getUserProfile().then(response => {
				
					this.user = response.data;
					const teacherId = parseInt(this.user.userId);
					this.currentId = teacherId;
					this.currentName = this.user.nickName;
					
					for (var i = 0; i < response.data.roles.length; i++) {
						this.currentRole.push(response.data.roles[i].roleName);
					}
					listGuidance(this.queryParams).then(response => {
						this.guidanceList = response.rows;
						this.total = response.total;
						this.loading = false;
					});
				});
				
			},
			// 取消按钮
			cancel() {
				this.open = false;
				this.reason = false;
				this.reset();
			},
			// 表单重置
			reset() {
				this.form = {
					guidanceId: null,
					teacherId: this.message,
					name: null,
					project: null,
					awardLevel: null,
					proofunit: null,
					level: null,
					awardTime: null,
					participants: null,
					year: null,
					certificate: null,
					checkPerson: null,
					college: null
				};
				this.resetForm("form");
			},
			/** 搜索按钮操作 */
			handleQuery() {
				this.queryParams.pageNum = 1;
				this.getList();
			},
			/** 重置按钮操作 */
			resetQuery() {
				this.resetForm("queryForm");
				this.handleQuery();
			},
			// 多选框选中数据
			handleSelectionChange(selection) {
				this.ids = selection.map(item => item.guidanceId)
				this.single = selection.length !== 1
				this.multiple = !selection.length
			},
			/** 新增按钮操作 */
			handleAdd() {
				this.reset();
				this.open = true;
				this.title = "添加参赛指导";
				
			},
			/** 修改按钮操作 */
			handleUpdate(row) {
				this.reset();
				const guidanceId = row.guidanceId || this.ids
				getGuidance(guidanceId).then(response => {
					this.form = response.data;
					this.open = true;
					this.title = "修改参赛指导";
				});
			},
			/** 提交按钮 */
			submitForm() {
				this.$refs["form"].validate(valid => {
					if (valid) {
						if (this.form.guidanceId != null) {
							updateGuidance(this.form).then(response => {
								this.$modal.msgSuccess("修改成功");
								this.open = false;
								this.getList();
							});
						} else{
							
							
							addGuidance(this.form).then(response => {
								this.$modal.msgSuccess("新增成功");
								this.open = false;
								this.getList();
							});
						}
					}
				});
			},
			/** 删除按钮操作 */
			handleDelete(row) {
				const guidanceIds = row.guidanceId || this.ids;
				this.$modal.confirm('是否确认删除参赛指导编号为"' + guidanceIds + '"的数据项？').then(function() {
					return delGuidance(guidanceIds);
				}).then(() => {
					this.getList();
					this.$modal.msgSuccess("删除成功");
				}).catch(() => {});
			},
			/** 导出按钮操作 */
			handleExport() {
				this.download('teacher/guidance/export', {
					...this.queryParams
				}, `guidance_${new Date().getTime()}.xlsx`)
			},
			/**查询该用户相关信息 */
			getUser() {
				getUserProfile().then(response => {
					this.user = response.data;
					const teacherId = parseInt(this.user.userId);
					this.queryParams.teacherId = teacherId;
					this.currentId = teacherId;
					this.getList();
				});

			},
			getAchievementId(){
				//通过teacherId查询信息
				var achievementQuery = {
					pageNum: 1,
					pageSize: 10,
					teacherId: this.currentId,
				};
				
				listAchievementcheck(achievementQuery).then(response => {
					var list = response.rows;
					for (var i = 0; i < list.length; i++) {
						
						if (list[i].guidanceProject == null) {
							this.achievementId = list[i].checkId;
							
							break;
						}
					}
				});
			},
			check(row) {
				let c = this;
				const guidanceIds = row.guidanceId || this.ids;
				let person = this.currentName;
				this.$modal.confirm('是否确认同意参赛指导编号为"' + guidanceIds + '"的成果？').then(function() {
					if (guidanceIds.length == undefined) { //批量
						let check;
						getGuidance(guidanceIds).then(response => {
							check = response.data;
							check.checkStatus = parseInt(check.checkStatus) + 1;
							check.checkPerson = person;
							updateGuidance(check).then(response => {
								c.$modal.msgSuccess("审核通过");
								c.getList();
							});
						});
					} else { //单个
						for (var i = 0; i < guidanceIds.length; i++) {
							let check;
							getGuidance(guidanceIds[i]).then(response => {
								check = response.data;
								check.checkStatus = parseInt(check.checkStatus) + 1;
								check.checkPerson = person;
								updateGuidance(check).then(response => {
									c.$modal.msgSuccess("审核通过");
									c.getList();
								});
							});
						}
					}
				}).then(() => {

				}).catch(() => {});
			},
			returnAchievement() {
				let c = this;
				const guidanceIds = this.achievementId;
				// const guidanceIds = row.guidanceId || this.ids;
				let person = this.currentName;
				this.$modal.confirm('是否确认不同意参赛指导编号为"' + guidanceIds + '"的成果？').then(function() {
					if (guidanceIds.length == undefined) { // 批量
						let check;
						getGuidance(guidanceIds).then(response => {
							check = response.data;
							if(parseInt(check.checkStatus)!=1){
								check.checkStatus = parseInt(check.checkStatus) - 1;
							}
							check.checkPerson = person;
							check.returnReason = c.returnReason;
							updateGuidance(check).then(response => {
								c.$modal.msgSuccess("审核不同意");
								c.getList();
							});
						});
					} else { //单个
						for (var i = 0; i < guidanceIds.length; i++) {
							let check;
							getGuidance(guidanceIds[i]).then(response => {
								check = response.data;
								if(parseInt(check.checkStatus)!=1){
									check.checkStatus = parseInt(check.checkStatus) - 1;
								}
								check.checkPerson = person;
								check.returnReason = c.returnReason;
								updateGuidance(check).then(response => {
									c.$modal.msgSuccess("审核不同意");
									c.getList();
								});
							});
						}
					}
					c.reason=false;
				}).then(() => {
			
				}).catch(() => {});
			},
			close(row){
				this.achievementId = row.guidanceId || this.ids;
				this.reason=true;
			},
			currentStatus(status){
				var c=this;
				if(status==0){
					return "已驳回";
				}
				else if(status==1){
					
					return "学务办初审";
				}
				else if(status==2){
					
					return "党总支书记审核";
				}
				else if(status==3){
					
					return "科室复核";
				}
				else if(status==4){
					
					return "学工处长";
				}
				else if(status==5){
					
					return "已审核";
				}
			},
			changeColor({row}){
				var c = this;
				if(row.checkStatus==0){
					return {
						color:"#f53b57",
						fontSize:"22px"
					}
				}else if(row.checkStatus==5){
					return {
						color:"#05c46b",
						fontSize:"22px"
					}
				}else if(c.currentRole.includes('学工处长')&&row.checkStatus==4){
					return {
						color:"#ffa801",
						fontSize:"22px"
					}
				}else if(c.currentRole.includes('科室复核')&&row.checkStatus==3){
					return {
						color:"#ffa801",
						fontSize:"22px"
					}
				}else if(c.currentRole.includes('党总支书记审核')&&row.checkStatus==2){
					return {
						color:"#ffa801",
						fontSize:"22px"
					}
				}else if(c.currentRole.includes('学务办初审')&&row.checkStatus==1){
					return {
						color:"#ffa801",
						fontSize:"22px"
					}
				}
			}
		}
	};
</script>